package com.hgw.Demo07_ObserverPattern.ObserverPattern;

import java.util.ArrayList;

/**
 * Data time:2021/12/19 15:31
 * StudentID:2019112118
 * Author:hgw
 * Description: 抽象目标
 */
public abstract class Subject {
    // 定义一个观察者集合用于存储所有观察者对象
    protected ArrayList<Observer> observers = new ArrayList<Observer>();

    // 注册方法，用于向观察者集合中增加一个观察者
    public void attach(Observer observer) {
        observers.add(observer);
    }

    // 注销方法，用于从观察者集合中删除一个观察者
    public void detach(Observer observer) {
        observers.remove(observer);
    }

    // 声明抽象通知方法
    public abstract void notifyObserver();
}
